

package main.new_2024.month_04;


import main.dataStruct.TreeNode;

import java.util.ArrayDeque;
import java.util.Deque;

/**
 * @Description: todo 2810. 故障键盘
 * 你的笔记本键盘存在故障，每当你在上面输入字符 'i' 时，它会反转你所写的字符串。而输入其他字符则可以正常工作。
 * 给你一个下标从 0 开始的字符串 s ，请你用故障键盘依次输入每个字符。
 * 返回最终笔记本屏幕上输出的字符串。
 *
 * @Author: Take-off
 * @Date: 1:00 PM 2024/2/27
 * @Param:
 * @return:
 **/
public class Solution0401 {

    //故障键盘
    public String finalString(String s) {
        //双端队列，如果遇到i调转方向
        Deque<Character> deque = new ArrayDeque<>();
        boolean flag =true;
        for (char c:s.toCharArray()){
            if (c == 'i'){
                flag = !flag;
            }else if (flag){
                deque.addLast(c);
            }else {
                deque.addFirst(c);
            }
        }
        StringBuffer sb = new StringBuffer();
        while (!deque.isEmpty()){
            sb.append(deque.pop());
        }
        if (!flag){
            sb.reverse();
        }
        return sb.toString();

    }



}

